home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Tool Chest / Text / WASTE / WASTE 1.1.2 Distribution / Pseudo-UPI for THINK Pascal / Windows.p < prev   
Encoding:
Text File  |  1995-10-12  |  1.8 KB  |  70 lines  |  [TEXT/PJMM]

  1. unit Windows;
  2.  
  3. { Pascal Interface to the Macintosh Libraries }
  4.  
  5. { Copyright © Apple Computer Inc. }
  6. { All Rights Reserved }
  7.  
  8. { Adapted for use with THINK Pascal 4.0.x by Marco Piovanelli }
  9.  
  10. interface
  11.     uses
  12.         Types;
  13.  
  14.     const
  15.  
  16. { floating window defproc ids }
  17.         floatProc = 1985;
  18.         floatGrowProc = 1987;
  19.         floatZoomProc = 1989;
  20.         floatZoomGrowProc = 1991;
  21.         floatSideProc = 1993;
  22.         floatSideGrowProc = 1995;
  23.         floatSideZoomProc = 1997;
  24.         floatSideZoomGrowProc = 1999;
  25.  
  26.     type
  27.  
  28.         WindowRef = WindowPtr;
  29.         WindowDefProcPtr = ProcPtr;  { FUNCTION WindowDef(varCode: INTEGER; theWindow: WindowRef; message: INTEGER; param: LONGINT): LONGINT; }
  30.  
  31. {        DeskHookProcPtr uses register based parameters on the 68k and cannot}
  32. {        be written in or called from a high-level language without the help of}
  33. {        mixed mode or assembly glue.}
  34. {}
  35. {        In:}
  36. {         => mouseClick      D0.B}
  37. {         => *theEvent       A0.L}
  38.  
  39.         DeskHookProcPtr = ProcPtr;  { PROCEDURE DeskHook(mouseClick: BOOLEAN; VAR theEvent: EventRecord); }
  40.         WindowDefUPP = UniversalProcPtr;
  41.         DeskHookUPP = UniversalProcPtr;
  42.  
  43.     const
  44.         uppWindowDefProcInfo = $00003BB0; { FUNCTION (2 byte param, 4 byte param, 2 byte param, 4 byte param): 4 byte result; }
  45.         uppDeskHookProcInfo = $00130802; { Register PROCEDURE (1 byte in D0, 4 bytes in A0); }
  46.  
  47.     function NewWindowDefProc (userRoutine: WindowDefProcPtr): WindowDefUPP;
  48.     inline
  49.         $2E9F;
  50.  
  51.     function NewDeskHookProc (userRoutine: DeskHookProcPtr): DeskHookUPP;
  52.     inline
  53.         $2E9F;
  54.  
  55.     function CallWindowDefProc (varCode: INTEGER;
  56.                                     theWindow: WindowRef;
  57.                                     message: INTEGER;
  58.                                     param: LONGINT;
  59.                                     userRoutine: WindowDefUPP): LONGINT;
  60.     inline
  61.         $205F, $4E90;
  62.  
  63.     procedure CallDeskHookProc (mouseClick: BOOLEAN;
  64.                                     var theEvent: EventRecord;
  65.                                     userRoutine: DeskHookUPP);
  66.     inline
  67.         $225F, $205F, $101F, $4E91;
  68.  
  69. implementation
  70. end.